/**
* Copyright (c) By zengqh.
*
* This program is just for fun or demo, in the hope that it  
* will be useful, you can redistribute it and/or modify freely.
*
* Time: 2012/07/16
* File: RenderTarget.h
* Blog: http://www.cnblogs.com/zengqh/
**/

#ifndef RenderTarget_h__
#define RenderTarget_h__

#include "../Core/Core.h"
#include "../Core/Declare.h"

class RenderTargetListener
{
public:
	virtual ~RenderTargetListener() {}

	virtual void onViewportUpdate(const Recti& view_port) = 0;
};

class RenderTarget
{
public:
	virtual ~RenderTarget() {}

	virtual const std::string& getName() const = 0;
	virtual void setName(const std::string& name) = 0;

	virtual s32 getWidth() const = 0;
	virtual s32 getHeight() const = 0;

	virtual void bind() = 0;
	virtual void unbind() = 0;

	virtual void addRenderTargetListener(RenderTargetListener* listener) = 0;
};

#endif    /* RenderTarget_h__ */